<?php

class XPHEnum
{
    const Value = 0;
    const Caption = 1;
    const Remark = 2;
    const Alternate = 3;
    public $EnumTypes = array();
    //通过值获取内容
    function show($v){
        $CurCaption = "";
        foreach($this->EnumTypes as $temp){
            if($temp[self::Value] == $v){
                $CurCaption = $temp[self::Caption];
                break;
            }
        }
        return $CurCaption;
    }
    function showByIndex($v,$index){
        $CurCaption = "";
        foreach($this->EnumTypes as $temp){
            if($temp[self::Value] == $v){
                $CurCaption = $temp[$index];
                break;
            }
        }
        return $CurCaption;
    }
    function getAll(){
        return $this->EnumTypes;
    }
    function getAllOneD(){
        $new_array=array();
        foreach($this->EnumTypes as $k=>$v){
            $new_array[]=$v[self::Caption];
        }
        return $new_array;
    }

}


//颜色
class CommonColor extends XPHEnum
{
    Const First = array('#FF3333');
    Const Second = array('#FF9933');
    Const Third = array('#E7C837');
    Const Fourth = array('#28B779');
    Const Fifth = array('#00CCFF');
    Const Sixth = array('#CC9933');
    Const Seventh = array('#9999FF');


    function __construct(){
        $this->EnumTypes = array(self::First,self::Second,self::Third,self::Fourth,self::Fifth,self::Sixth,self::Seventh);
    }
}

// 公共状态
class CommonStatus extends XPHEnum
{
    Const UnDeleted = array("1",'未删除');
    Const Deleted = array("0",'已删除');
    
    function __construct(){
        $this->EnumTypes = array(self::UnDeleted,self::Deleted);
    }
}
// 公共是否
class CommonWhether extends XPHEnum
{
    Const Whether = array("1",'是');
    Const Not = array("0",'否');
    
    function __construct(){
        $this->EnumTypes = array(self::Whether,self::Not);
    }
}
//用户类型
class AdminType extends XPHEnum
{
    Const Auth = array("1",'统一认证用户');
    Const SelfAdmin = array("2",'系统用户');

    function __construct(){
        $this->EnumTypes = array(self::Auth,self::SelfAdmin);
    }
}
//系统部门
class AdminDept extends XPHEnum
{
    Const System = array('系统');

    function __construct(){
        $this->EnumTypes = array(self::System);
    }
}

//角色（与表数据同步role表）
class WebRole extends XPHEnum
{
    Const Admin = array("1",'超级管理员');
    Const Teacher = array("2",'教师');
    Const Student = array("3",'学生');
    Const SchoolSupervisor = array("4",'校级督导');
    Const UnitSupervisorGroupLeader = array("5",'二级教学单位督导组长');
    Const UnitSupervisor = array("6",'二级教学单位督导');
    Const ExternalSupervisor = array("7",'外聘督导');
    Const StudentInfoOfficer = array("8",'校级信息员');
    Const UnitStudentInfoOfficer = array("9",'二级教学单位信息员');
    Const UnitLeader = array("10",'职能部门及二级教学单位负责人');
    Const SupervisorDirector = array("11",'督导处长');
    Const SchoolLeader = array("12",'校级领导');
    Const Manage = array("13",'管理员');

    function __construct(){
        $this->EnumTypes = array(self::Admin,self::Teacher,self::Student,self::SchoolSupervisor,self::UnitSupervisorGroupLeader,self::UnitSupervisor,self::ExternalSupervisor,self::StudentInfoOfficer,self::UnitStudentInfoOfficer,self::UnitLeader,self::SupervisorDirector,self::SchoolLeader,self::Manage);
    }
}

//听课类型（校||二级）
class AttendType extends XPHEnum
{
    Const School = array("1",'校督导');
    Const Unit = array("2",'二级督导');

    function __construct(){
        $this->EnumTypes = array(self::School,self::Unit);
    }
}
//回馈类型（校||二级）
class FeedBackSubType extends XPHEnum
{
    Const School = array("1",'校级');
    Const Unit = array("2",'二级教学单位');

    function __construct(){
        $this->EnumTypes = array(self::School,self::Unit);
    }
}

//配置类型（
class SelectType extends XPHEnum
{
    Const CourseType = array("1",'课程类别');

    function __construct(){
        $this->EnumTypes = array(self::CourseType);
    }
}














//听课类型
class AttendStatus extends XPHEnum
{    
    Const Deleted = array("0",'已删除');
    Const Save = array("1",'已保存');
    Const Submit = array("2",'已提交');
    
    function __construct(){
        $this->EnumTypes = array(self::Deleted,self::Save,self::Submit);
    }
}

// 课程名称（听课表）已废弃，取数据库
class CourseName extends XPHEnum
{
	Const BasicCourse = array("1",'基础课');
	Const ProfessionalBasicCourse = array("2",'专业基础课');
    Const ProfessionalCourse = array("3",'专业课');
    
    function __construct(){
    	$this->EnumTypes = array(self::BasicCourse,self::ProfessionalBasicCourse,self::ProfessionalCourse);
    }
}

// 年龄层次（听课表）
class AgeGroups extends XPHEnum
{
    Const OldAge = array("1",'老');
    Const MiddleAge = array("2",'中');
    Const Youth = array("3",'青');
    
    function __construct(){
        $this->EnumTypes = array(self::OldAge,self::MiddleAge,self::Youth);
    }
}

// // 教师属性（听课表）
// class TeachersAttribute extends XPHEnum
// {
//     Const FullTimeTeacher = array("1",'专任教师');
//     Const SchoolPartTimeTeacher = array("2",'校内兼职');
//     Const CompanyPartTimeTeacher = array("3",'企业兼职');
//     Const ForeignTeachetsPartTimeTeacher = array("4",'外校兼职');
    
//     function __construct(){
//         $this->EnumTypes = array(self::FullTimeTeacher,self::SchoolPartTimeTeacher,self::CompanyPartTimeTeacher,self::ForeignTeachetsPartTimeTeacher);
//     }
// }

// 教师属性（听课表）--0508新
class TeachersAttribute extends XPHEnum
{
    Const First = array("1",'工勤人员');
    Const Second = array("2",'行政人员');
    Const Third = array("3",'教辅人员');
    Const Fourth = array("4",'专任教师');
    Const Fifth = array("5",'专职辅导员');
    Const Sixth = array("6",'外校兼职');
    Const Seventh = array('7','企业兼职');
    Const Eighth = array('8','无');
    
    function __construct(){
        $this->EnumTypes = array(self::First,self::Second,self::Third,self::Fourth,self::Fifth,self::Sixth,self::Seventh,self::Eighth);
    }
}
// // 教师职称（听课表）
// class Title extends XPHEnum
// {
//     Const Assistant = array("1",'助教');
//     Const Lecturer = array("2",'讲师');
//     Const AssociateProfessor = array("3",'副教授');
//     Const Professor = array("4",'教授');
    
//     function __construct(){
//         $this->EnumTypes = array(self::Assistant,self::Lecturer,self::AssociateProfessor,self::Professor);
//     }
// }

// 教师职称（听课表）--0508新
class Title extends XPHEnum
{
    Const First = array("1",'助教');
    Const Second = array("2",'讲师');    
    Const Third = array("3",'高级讲师');
    Const Fourth = array("4",'副教授');
    Const Fifth = array("5",'教授');
    Const Sixth = array("6",'助理工程师');
    Const Seventh = array("7",'工程师');
    Const Eighth = array("8",'高级工程师');
    Const Ninth = array("9",'正高级工程师');
    Const Tenth = array("10",'助理馆员');
    Const Eleventh = array("11",'馆员');
    Const Twelfth = array("12",'副研究馆员');
    Const Thirteenth = array("13",'研究馆员');
    Const Fourteenth  = array("14",'研究实习员');
    Const Fifteenth  = array("15",'助理研究员');
    Const Sixteenth   = array("16",'研究员');
    Const Seventeenth  = array("17",'副研究员');
    Const Eighteenth  = array("18",'助理实验师');
    Const Nineteenth = array("19",'实验师');
    Const Twentieth = array("20",'高级实验师');
    Const TwentyFirst  = array("21",'中学一级教师');
    Const TwentySecond = array("22",'中学二级教师');
    Const TwentyThird = array("23",'会计师');
    Const TwentyFourth = array("24",'高级会计师');
    Const TwentyFifth = array("25",'经济师');
    Const TwentySixth = array("26",'高级经济师'); 
    Const TwentySeventh = array("27",'副主任医师'); 

    Const TwentyEighth = array("28",'中级经济师');
    Const TwentyNinth = array("29",'高级统计师'); 
    Const Thirtieth = array("30",'主任护师');
    Const ThirtyFirst = array("31",'中级会计师'); 
    Const ThirtySecond = array("32",'主任医师');
    Const ThirtyThird = array("33",'总导演');
    Const ThirtyFourth = array("34",'保安员二级讲师');
    Const ThirtyFifth = array("35",'软件工程师');
    Const ThirtySixth = array("36",'浙江省技术经纪人');    
    Const ThirtySeventh = array("37",'中级'); 
    Const ThirtyEighth = array("38",'高级');
    Const ThirtyNinth = array("39",'高工');
    Const Fortieth = array("40",'副高');
    Const FortyFirst = array("41",'副教授高级工程师');
    Const FortySecond = array("42",'高级技师');
    Const FortyThird = array("43",'无');
    
    function __construct(){
        $this->EnumTypes = array(self::First,self::Second,self::Third,self::Fourth,self::Fifth,self::Sixth,self::Seventh,self::Eighth,self::Ninth,self::Tenth,self::Eleventh,self::Twelfth,self::Thirteenth,self::Fourteenth,self::Fifteenth,self::Sixteenth,self::Seventeenth,self::Eighteenth,self::Nineteenth,self::Twentieth,self::TwentyFirst,self::TwentySecond,self::TwentyThird,self::TwentyFourth,self::TwentyFifth,self::TwentySixth,self::TwentySeventh,self::TwentyEighth,self::TwentyNinth,self::Thirtieth,self::ThirtyFirst,self::ThirtySecond,self::ThirtyThird,self::ThirtyFourth,self::ThirtyFifth,self::ThirtySixth,self::ThirtySeventh,self::ThirtyEighth,self::ThirtyNinth,self::Fortieth,self::FortyFirst,self::FortySecond,self::FortyThird);
    }
}



// 教师教学水平与教学效果评价类型
class TeachingType extends XPHEnum
{
    Const Content = array("1",'教学内容');
    Const Implementation = array("2",'教学实施');
    Const StudentStatus = array("3",'学生状况');    
    
    function __construct(){
        $this->EnumTypes = array(self::Content,self::Implementation,self::StudentStatus);
    }
}
// 教学内容（30分）（听课表）
class TeachingContent extends XPHEnum
{
    Const First = array("1",'①课前准备充分，教具齐全，教学载体丰富<br>&nbsp;&nbsp;&nbsp②教学设计合理','20','1');
    Const Second = array("2",'①教学内容与课程设计相符，专业知识及能力扎实<br>&nbsp;&nbsp;&nbsp②教学做一题，内容贴近岗位，注重职业素养教育融于课堂教学','20','2');
    // Const Third = array("3",'教学做一体，内容贴近岗位，注重职业素养教育融入课堂教学','10','3');
    
    function __construct(){
        $this->EnumTypes = array(self::First,self::Second);
    }
}
// 教学实施（70分）（听课表）
class TeachingImplementation extends XPHEnum
{
    Const First = array("1",'课堂设计：教学时间分配合理，有效教学时间充分，教学进度符合教学要求。突出学生为中心，强调知行合一，实行因材施教。<br>
&nbsp;&nbsp;&nbsp教学方法：采取任务驱动等多种有效形式，引入具体，展开得当，归纳清晰。<br>
&nbsp;&nbsp;&nbsp课堂管理：课堂常态管理严格有效，课堂纪律好，学生态度认真。<br>
&nbsp;&nbsp;&nbsp教学互动：师生互动好，及时关注学生学习情况，把握学生学习效果。激发学生问题意识，注重学生思维能力培养。<br>
&nbsp;&nbsp;&nbsp教学水平：<br>
&nbsp;&nbsp;&nbsp1.普通话标准，讲解流畅清晰，板书清晰、工整，示范操作规范，有激发学生职业兴趣的感染力。<br>
&nbsp;&nbsp;&nbsp2.落实德技并修、工学结合的课程思政要求。<br>
&nbsp;&nbsp;&nbsp3.合理运用云计算、大数据、物联网、虚拟/增强现实、人工智能等信息技术以及数字资源、信息化教学设施，熟练应用信息化教学手段，具有驾驭课堂和的能力。','35','3');
    Const Second = array("2",'①教学活动安全有序，教学互动广泛深入，教学气氛生动活泼。<br>
&nbsp;&nbsp;&nbsp②能力目标与素养目标明确，有助于学生明晰职业目标，有利于提高职业认同。<br>
&nbsp;&nbsp;&nbsp③创新课堂教学与实训模式，给学生深刻的课堂学习与实楼体验且有较大的借鉴和推广价值。','25','4');
    // Const Third = array("3",'教学采取任务驱动等多种有效形式，引入具体，展开得当，归纳清晰','10','6');
    // Const Fourth = array("4",'讲解流畅清晰，示范操作规范，有激发学生职业兴趣的感染力','10','7');
    // Const Fifth = array("5",'师生互动好，及时关注学生学习情况，把握学生学习效果','15','8');
    // Const Sixth = array("6",'激发学生问题意识，注重学生思维能力培养','10','9');
    
    function __construct(){
        $this->EnumTypes = array(self::First,self::Second);
    }
}
// 教学水平总体评价（听课表）
class TeachingLevel extends XPHEnum
{
    Const First = array("1",'A','90以上');
    Const Second = array("2",'B','80-90');
    Const Third = array("3",'C','70-80');
    Const Fourth = array("4",'D','60-70');
    Const Fifth = array("5",'E','60以下');
    
    function __construct(){
        $this->EnumTypes = array(self::First,self::Second,self::Third,self::Fourth,self::Fifth);
    }
}
// 学生状况（100分）（听课表）
class StudentStatus extends XPHEnum
{
    Const First = array("1",'①教学中学生参与度高，发挥了学生主体作用，职业兴趣有提高<br>②学生理解课堂培养能力的应用情景或背景，职业意识有提高<br>③按时到课率高，无迟到早退，不带食物和不穿拖鞋进教学场所，不玩手机，不睡觉，不随意进出教室，对老师尊敬礼貌<br>④教材、笔记本和笔等学习材料携带齐全，听课时能认真记学习笔记<br>⑤听课认真，精神饱满，课堂气氛活跃<br>⑥有良好的职业行为，主动维护教学环境整洁，结束时主动予以整理','100','5');
    // Const Second = array("2",'学生理解课堂培养能力的应用情景或背景，职业意识有提高','20','11');
    // Const Third = array("3",'按时到课率高，无迟到早退，不带食物和不穿拖鞋进教学场所，不玩手机，不睡觉，不随意进出教室，对老师尊敬礼貌','20','12');
    // Const Fourth = array("4",'教材、笔记本和笔等学习材料携带齐全，听课时能认真记学习笔记','10','13');
    // Const Fifth = array("5",'听课认真，精神饱满，课堂气氛活跃','20','14');
    // Const Sixth = array("6",'有良好的职业行为，主动维护教学环境整洁，结束时主动予以整理','10','15');
    
    function __construct(){
        $this->EnumTypes = array(self::First);
    }
}

// 教学水平总体评价（听课表）
class TeachingEffect extends XPHEnum
{
    Const First = array("1",'A','90以上');
    Const Second = array("2",'B','80-90');
    Const Third = array("3",'C','70-80');
    Const Fourth = array("4",'D','60-70');
    Const Fifth = array("5",'E','60以下');
    
    function __construct(){
        $this->EnumTypes = array(self::First,self::Second,self::Third,self::Fourth,self::Fifth);
    }
}

// 教学准备开展情况（听课表）
class TeachingReadiness extends XPHEnum
{
    Const First = array("1",'课程标准',array('有','无'));
    Const Second = array("2",'整体设计',array('有','无'));
    Const Third = array("3",'单元设计',array('有','无'));
    Const Fourth = array("4",'授课计划',array('有','无'));
    Const Fifth = array("5",'教学课件',array('有','无'));
    Const Sixth = array("6",'教材讲义',array('有','无'));
    Const Seventh = array("7",'教师迟到',array('是','否'));
    Const Eighth = array("8",'教师早退',array('是','否'));
    Const Ninth = array("9",'进度一致',array('是','否'));
    Const Tenth = array("10",'板书情况',array('有','无'));
    Const Eleventh = array("11",'教学姿态',array('站','坐'));
    Const Twelfth = array("12",'师生互动',array('适当','不适当'));
    
    function __construct(){
        $this->EnumTypes = array(self::First,self::Second,self::Third,self::Fourth,self::Fifth,self::Sixth,self::Seventh,self::Eighth,self::Ninth,self::Tenth,self::Eleventh,self::Twelfth);
    }
}
// 学生常态（听课表）
class StudentsNorm extends XPHEnum
{
    Const First = array("1",'应到人数');
    Const Second = array("2",'实到人数');
    Const Third = array("3",'按时到课人数');
    Const Fourth = array("4",'按时到课率%');
    Const Fifth = array("5",'低头睡觉人数');
    Const Sixth = array("6",'迟到早退人数');
    Const Seventh = array("7",'旷课人数');
    Const Eighth = array("8",'缺课人数');
    Const Ninth = array("9",'玩手机人数');
    
    function __construct(){
        $this->EnumTypes = array(self::First,self::Second,self::Third,self::Fourth,self::Fifth,self::Sixth,self::Seventh,self::Eighth,self::Ninth);
    }
}

//课堂设施设备完好情况
class ClassroomFacilities extends XPHEnum
{
    Const IsGood = array("1",'好');
    Const IsBad = array("2",'不好');
    
    function __construct(){
        $this->EnumTypes = array(self::IsGood,self::IsBad);
    }
}
//课堂环境卫生情况
class ClassroomEnvironmental extends XPHEnum
{
    Const IsGood = array("1",'好');
    Const IsGeneral = array("2",'一般');
    Const IsBad = array("3",'差');
    
    function __construct(){
        $this->EnumTypes = array(self::IsGood,self::IsGeneral,self::IsBad);
    }
}



//反馈所属表
class FeedbackType extends XPHEnum
{
    Const Supervisor = array("Supervisor",'督导反馈','supervisor');
    Const Student = array("Student",'学生信息员反馈','student');
    
    function __construct(){
        $this->EnumTypes = array(self::Supervisor,self::Student);
    }
}
//督导反馈类型
class SupervisorFeedbackType extends XPHEnum
{
    Const School = array("1",'校级');
    Const Secondary = array("2",'二级教学单位');
    
    function __construct(){
        $this->EnumTypes = array(self::School,self::Secondary);
    }
}

//督导反馈类型
class StudentFeedbackType extends XPHEnum
{
    Const School = array("1",'校级');
    Const Secondary = array("2",'二级教学单位');
    
    function __construct(){
        $this->EnumTypes = array(self::School,self::Secondary);
    }
}

//反馈状态
class FeedBackStatus extends XPHEnum
{
    Const ToAudit = array("1",'待审核');
    Const HaveWrite = array("2",'已处理');
    Const End = array("3",'已结束');
    
    function __construct(){
        $this->EnumTypes = array(self::ToAudit,self::HaveWrite,self::End);
    }
}

//反馈记录类型
class FeedBackRecordSource extends XPHEnum
{
    Const Create = array("1",'新建');
    Const Forward = array("2",'转发');
    Const Submit = array("3",'提交至管理员');
    Const DoDeal = array("4",'填写处理意见和结果');
    Const DoEnd = array("5",'结束');
    Const CancelEnd = array("6",'取消结束');
    
    function __construct(){
        $this->EnumTypes = array(self::Create,self::Forward,self::Submit,self::DoDeal,self::DoEnd,self::CancelEnd);
    }
}

//其他表类型
class OtherTableType extends XPHEnum
{
    Const Table1 = array("1",'教学督导专题调研表','Table1');
    Const Table2 = array("2",'督导教学巡（检）查情况记录表','Table2');
    Const Table3 = array("3",'督导巡考情况记录表','Table3');
    Const Table4 = array("4",'教学状态专项检查表','Table4');
    Const Table5 = array("5",'学生顶岗实习巡查记录表','Table5');
    // Const Table6 = array("6",'信息员信息反馈表','Table6');
    
    function __construct(){
        $this->EnumTypes = array(self::Table1,self::Table2,self::Table3,self::Table4,self::Table5);
    }
}

//其他表类型
class Table2Type extends XPHEnum
{
    Const First = array('1','教学秩序');
    Const Second = array('2','教学各环节');
    
    function __construct(){
        $this->EnumTypes = array(self::First,self::Second);
    }
}

//其他表类型
class Table5Eval extends XPHEnum
{
    Const First = array('1','满意');
    Const Second = array('2','基本满意');
    Const Third = array('3','不满意');
    
    function __construct(){
        $this->EnumTypes = array(self::First,self::Second,self::Third);
    }
}

// 搜索类型
class SearchType extends XPHEnum
{
    Const First = array('1','课程名称');
    Const Second = array('2','教师名称');
    
    function __construct(){
        $this->EnumTypes = array(self::First,self::Second);
    }
}